package com.framework.loippi.entity;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.framework.loippi.mybatis.eitity.GenericEntity;
import com.framework.loippi.mybatis.ext.annotation.Column;
import com.framework.loippi.mybatis.ext.annotation.Table;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * Entity - 预约表
 * 
 * @author wmj
 * @version 2.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "T_PATIENT_SUBSCRIBE")
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties({ "handler","hibernateLazyInitializer" }) 
@ApiModel(value="预约表",description="预约表")
public class Subscribe implements GenericEntity {

	private static final long serialVersionUID = 5081846432919091193L;

	/**  */
	@Column(id = true, name = "id", updatable = false)
	@ApiModelProperty(value = "")
	private Long id;
	
	/** 预约号 */
	@Column(name = "subscribe_nu" )
	@ApiModelProperty(value = "预约号")
	private Long subscribeNu;
	
	/** 是否删除(0否，1是) */
	@Column(name = "is_delete" )
	@ApiModelProperty(value = "是否删除(0否，1是)")
	private Integer isDelete;
	
	/** 科室id */
	@Column(name = "depart_id" )
	@ApiModelProperty(value = "科室id")
	private Long departId;
	
	/** 患者id */
	@Column(name = "patient_id" )
	@ApiModelProperty(value = "患者id")
	private Long patientId;
	
	/** 预约医生 */
	@Column(name = "doctor_id" )
	@ApiModelProperty(value = "预约医生")
	private Long doctorId;
	
	/** 预约时间 */
	@Column(name = "subscribe_time" )
	@ApiModelProperty(value = "预约时间")
	private java.util.Date subscribeTime;
	
	/** 支付状态(0待支付，1已支付) */
	@Column(name = "pay_status" )
	@ApiModelProperty(value = "支付状态(0待支付，1已支付)")
	private Integer payStatus;
	
	/** 预约状态(0未预约,1已预约) */
	@Column(name = "status" )
	@ApiModelProperty(value = "预约状态(0未预约,1已预约)")
	private Integer status;
	
	/** 预约类型(0首次预约,1复诊) */
	@Column(name = "type" )
	@ApiModelProperty(value = "预约类型(0首次预约,1复诊)")
	private Integer type;
	
	/** 就诊状态(0待就诊,1进行中,2已结束。) */
	@Column(name = "subscribe_status" )
	@ApiModelProperty(value = "就诊状态(0待就诊,1进行中,2已结束。)")
	private Integer subscribeStatus;
	
	/** 预约类型(0 普通,1专家) */
	@Column(name = "subscribe_type" )
	@ApiModelProperty(value = "预约类型(0 普通,1专家)")
	private Integer subscribeType;

	/** 取消原因 */
	@Column(name = "reason" )
	@ApiModelProperty(value = "取消预约原因")
	private String reason;

	/** 支付金额*/
	@Column(name = "registration" )
	@ApiModelProperty(value = "支付金额")
	private BigDecimal registration;

	/** 病历号 */
	@Column(name = "sickBookNum")
	@ApiModelProperty(value = "病历本号码")
	private String sickBookNum;

	/** 就诊状态 */
	@Column(name = "sickStatus")
	@ApiModelProperty(value = "就诊状态")
	private Integer sickStatus;

	/** 创建时间 */
	@Column(name = "create_time" )
	@ApiModelProperty(value = "创建时间")
	private java.util.Date createTime;
	
	/** 修改时间 */
	@Column(name = "pay_time" )
	@ApiModelProperty(value = "修改时间")
	private java.util.Date payTime;

	/** 关联医生 */
	@ApiModelProperty(value = "医生信息")
	private Doctor doctor;

	/** 关联患者 */
	@ApiModelProperty(value = "患者信息")
	private Patient patient;

	/** 关联科室 */
	@ApiModelProperty(value = "科室信息")
	private Department department;

}
